const schedule = require("node-schedule");

class Alarm {
  constructor({ alarmName, alarmTime }) {
    this.alarmName = alarmName; // 定时任务名称
    this.alarmTime = alarmTime; // 定时任务时间
  }

  // 创建定时任务
  async create(callback) {
    schedule.scheduleJob(`${this.alarmName}`, `${this.alarmTime}`, callback);
  }

  // 删除定时任务
  delete() {
    if (schedule.scheduledJobs[this.alarmName]) {
      schedule.scheduledJobs[this.alarmName].cancel();
      return true;
    }
    return false;
  }

  // 查找定时任务
  findOne(name) {
    if (schedule.scheduledJobs[name]) {
      return schedule.scheduledJobs[name];
    } else {
      throw new Error("未找到任务名");
    }
  }

  // 查看所有定时任务
  findAll() {
    return schedule.scheduledJobs;
  }
}

module.exports = Alarm;
